package cn.wolfcode.mq;

import cn.wolfcode.domain.OperateIntergralVo;
import cn.wolfcode.service.IUsableIntegralService;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author BAI
 * @info 积分退款消息监听
 */
@Component
@Slf4j
@RocketMQMessageListener(
        topic = MQConstant.REFUND_INTEGRAL_TOPIC,
        consumerGroup = MQConstant.REFUND_INTEGRAL_TX_GROUP
)
public class IntegralRefundMessageListener implements RocketMQListener<OperateIntergralVo> {

    private final IUsableIntegralService usableIntegralService;

    public IntegralRefundMessageListener(IUsableIntegralService usableIntegralService) {
        this.usableIntegralService = usableIntegralService;
    }

    @Override
    public void onMessage(OperateIntergralVo operateIntergralVo) {
        log.info("[积分退款]接收到消息:{}", JSONObject.toJSONString(operateIntergralVo));

        usableIntegralService.integralRefund(operateIntergralVo);
    }
}
